In a server based computing environment, hardware upgrades, application deployment, technical support, and/or data storage can all be routed through and controlled by one or more terminal application servers. As such, businesses which need to support multiple clients can use server based computing to reduce application costs while ensuring that the applications are accessible by any or all of the supported clients. In addition to improved access and lower application costs, server based computing also enables enhanced security and eliminates the need for patch through software upgrades to a plurality of different clients. Traditional server based computing is generally implemented through remote desktop computing or remote application computing.
In remote desktop computing, one or more terminal application servers provide one or more clients with access to a plurality of software applications. To manage data transfer, the terminal application servers dedicate a separate data communication line to each client. Users can access the terminal server through their user devices (or clients) by authenticating into a network with a username and password, with an access card, based on biometric information, or by any other method. Each client serves as a remote desktop display capable of displaying applications which are provided by the terminal application server. The remote desktop is created by and handled within the terminal application server based on applications installed on the terminal application server. The clients also allow users to input data through a mouse, keyboard, etc. such that the users can interact with the application.
Traditional remote desktop computing is limited due to the high likelihood of terminal server overload. The terminal server is required to simultaneously provide access to multiple clients and is therefore required to simultaneously execute multiple applications. In organizations with large numbers of users, inadequate servers, or inadequate bandwidth, this simultaneous execution can overburden the terminal server(s), resulting in decreased production, system outages, and potentially lost data. Once overburdened, the remote desktop computing system is not able to relocate clients to another terminal server, even if one exists. As a result, computing speed and performance is reduced for all users. Traditional remote desktop computing is also limited due to conflicts which arise between applications which are simultaneously executed on clients, the inability of the terminal server to support more than one operating system, and the potential that users will be inadvertently granted access to restricted applications and/or data.
In remote application computing, a plurality of terminal application servers are used, each of which is dedicated to one or more applications. A user can use a remote client to authenticate through a network and access the terminal application server corresponding to a desired application. A single communication line is established between the client and the terminal application server for each application which is provided to the user. Remote application computing has several advantages over remote desktop computing, including a minimized risk of users inadvertently being granted access to restricted applications and a minimized risk of applications conflicting with one another. However, traditional remote application computing is limited because it requires a data communication channel for each provided application, resulting in a need for excessive bandwidth. In addition, clients which utilize remote application computing need expensive hardware capable of simultaneously handling a plurality of distinct communication channels if the client is to execute more than a single application at one time. Also, locally running the desktop on the client requires an expensive operating system and hardware, can lead to security vulnerability, and increases the costs of infrastructure technology management.
Traditional server based computing is also limited because the way in which application data is provided to a client requires that the client have adequate graphics capabilities built in. This is because commands for forming objects on a client monitor are sent from the terminal application server directly to the client. In order to display data, the client has to process the commands using a graphical display algorithm such as Graphical Device Interface (GDI), QuickDraw, DirectX, Display PDF, OpenGL, X11, etc. Traditional server based computing is further limited by the inability to provide individual users with limited funds and/or limited computing resources with remote access to applications.
Thus, there is a need for a server based computing system in which bandwidth usage is minimized. There is also a need for a server based computing system in which the risk of application server overload is minimized. Further, there is a need for a server based computing system which is accessible by users with limited funds and/or limited computing resources.